Modern computing and display technologies have facilitated the development of systems for so-called “virtual reality” or “augmented reality”, where digitally reproduced images, or portions thereof, are presented to a user in a manner where they seem to be, or may be perceived as, real. A virtual reality (VR) scenario typically involves presentation of digital or virtual image information without transparency to other actual real-world visual input, whereas an augmented reality (AR) scenario typically involves presentation of digital or virtual image information as an augmentation to visualization of the actual real-world around a user.
VR and AR systems typically employ wearable display devices (e.g., head-worn displays, helmet-mounted displays, or smart glasses) that are at least loosely coupled to a user's head, and thus move when the end user's head moves. If the end user's head motions are detected by the display system, the data being displayed can be updated to take the change in head pose (e.g., the orientation and/or location of user's head) into account.
As an example, if a user wearing a head-worn display views a virtual representation of a three-dimensional (3D) object on the display and walks around the area where the 3D object appears, that 3D object can be re-rendered for each viewpoint, giving the end user the perception that he or she is walking around an object that occupies real space. If the head-worn display is used to present multiple objects within a virtual space (for instance, a rich virtual world), measurements of head pose can be used to re-render the scene to match the end user's dynamically changing head location and orientation and provide an increased sense of immersion in the virtual space.
Head-worn displays that enable AR provide concurrent viewing of both real and virtual objects. With an “optical see-through” display, the end user can see through transparent (or semi-transparent) elements in the display system to view directly the light from real objects in the environment. The transparent element, often referred to as a “combiner,” superimposes light from the display over the end user's view of the real world, where light produced by the display projects an image of the virtual content over the see-through view of the real world. A camera may be mounted onto the wearable display to capture images or videos of the scene being viewed by the user.
When operating the wearable display, the user may seek to preserve a recording of his or her experience in operating the AR device. For example, gamers that play electronic video games often choose to create a recording of the real-time action of the gameplay, where the recording can be played back at a later moment in time. In the context of AR systems, this means that the recording should include a recording of the combined real and virtual objects during operation of the display system.
The problem is that virtual objects in the AR system are rendered from the perspective of the user's eyes/head, whereas the camera that is actually recording the real objects is normally mounted at a different location and/or viewing angle from the user's eyes. This means that a recording which simply combines the rendered virtual objects with the recording of the real objects will show the virtual objects from a first perspective and the real objects from a second perspective—potentially creating a significant disconnect in the orientation and/or content of the virtual objects in the final image product for a given image frame of the recording.
To address this, “warping” may be applied to change the way that the virtual objects are presented in the video recording. This approach takes the virtual objects rendered from the first perspective, and shifts the way that the virtual objects are presented to attempt to display those virtual objects from the second perspective. One problem with this approach is that when a virtual object is originally rendered from the first perspective, the rendered virtual object may not include displayable information about the virtual object from the second perspective. For example, when a second virtual object is hidden behind a first virtual object from the perspective of the user's eyes (i.e., the first perspective), then a rendering of the virtual content may only show the first virtual object and not the second (hidden) virtual object which is viewable from the perspective of the camera (i.e., the second perspective). This means that even when warping is performed on the virtual content, the warped virtual content that only includes content for the first virtual object and will still be missing content for the second virtual object that is viewable from the perspective of the camera. This approach therefore may create video artifacts that affect the content veracity of the recorded image/video frames.
Another potential problem with this approach is that it introduces latency as the AR equipment and application attempts to perform the necessary processing to warp the virtual content for the recording. This may introduce perceptible delays in generating the real-time images for display to the user on the wearable display.
Therefore, there is a need for an improved approach to generate AR recordings having a combination of recorded real objects and rendered virtual objects.